Computer networks have turned out to be an important communication tool for business, pleasure and governmental purposes. For example, employees of a large business may communicate over an intranet of networked computers. There are also computer networks with wider scope. Of course, the Internet is currently the most prevalent computer network these days. The Internet serves as a sort of meta-network to connect a great many individual computers, intranets and other, smaller-scale networks into a vast global network. While the technical specifics of the Internet may change or evolve over time, there will probably continue to be small-scale computer networks, as well as one or more computer networks that are global in scope.
Much data communication over the Internet, and other computer networks, is performed through transmission control protocol (“TCP”) virtual circuit connections. In a virtual circuit connection, two computers that are communicating over the computer network send and receive data as though they were connected by a single, static communication path, such as a telephone wire. However, the communication does not, in fact, generally take place over any single dedicated wire or wireless path. Instead there is a complex system of packet switching that sends various portions of a data communication over various paths, depending primarily on what paths are most readily available to transmit the data. Virtual circuit connections are characterized by the reliable, in-order delivery of all data they carry.
In the Internet world of virtual circuit connections, there are generally two types of communications, intermittent and persistent. In intermittent communication, two communicating computers intermittently establish, break and reestablish multiple virtual connections over time. In persistent communication, a single virtual circuit connection is maintained even during lulls when no substantive data is being communicated in either direction.
There are advantages to this intermittent communication. Basically, in the intermittent communication context, the computers at either end of the communication conserve their resources by not maintaining a persistent connection. This can be especially important at the server computer side of things, because a server computer may need to handle many overlapping request from numerous client computers that are connected (all over the world) to the Internet.
However, intermittent communication has some shortcomings. For example, if two or more individuals want to communicate in real-time this can theoretically be done with quick successive intermittent connections. One example of this is called polling, where the a client computer continually and consecutively establishes short-duration connections with a server computer to confirm that there is no new data at the server end which the client may wish to access.
However, the numerous, successive intermittent communications are required to ensure that any new data added at the server end is quickly requested and received at the client end (to facilitate real-time collaboration) can cause a large drain on the computer system resources of the individual client computer systems, as well as on network resources (e.g., Internet bandwidth). This problem is exacerbated when any new, relevant server data must get to the client system(s) with sufficient speed so that users of the client computer system(s) perceive that they are receiving data in real-time. The magnitude of these problems greatly increases as the number of mutually communicating communicators goes up.
The limitations of conventional, intermittent network communication has been addressed in various ways. For example, a streaming feed from a server computer to a client, over the Internet, may be provided to persistently transmit data (e.g., audio-video data) from the server to the client. As a different example, dedicated software, such as Internet Relay Chat (“IRC”), is used to set up chat rooms, wherein a multiplicity of remote computers can mutually send text-based messages in real time in the setting of a chat room, and the server calls back to the clients to distribute new chat data input into the system by a give participant.
Some types of connections, such as audio-video streaming and chat rooms, have their own shortcomings. For example, these types of communication may not be consistent with the use of a firewall due to their use of non-standard network ports and/or their initiation of connections from server to client (server call-backs) and/or the protocol under which they communicate data. These potential solutions also have limitations on the type of data that can be communicated. These potential solutions are thought to be especially unsuited for computer network application collaboration over the Internet, wherein two or more mutually-remote clients concurrently and simultaneously access and control an application (e.g., a word processing application on a remote server machine) over a computer network across one or more firewalls.